System and method for data searching among multiple enterprise applications

ABSTRACT

Systems and methods are provided for searching data, which may reside in multiple computer applications, such as enterprise applications. An example system may include one or more application adapters for interfacing with the one or more computer applications. At least one processor is operable to cause the one or more application adapters to extract data from the one or more computer applications. A data transformation module receives and transforms data from the one or more application adapters. The data is transformed to a format suitable for searching by a search application. A search receives and searches the transformed data to identify one or more data files meeting one or more search criteria.

TECHNICAL FIELD

Certain embodiments of the invention relate generally to computer datasearching systems, and, more particularly, to systems and methods forsearching for, and retrieving, data residing in multiple computerapplications, which may be part of an enterprise network.

BACKGROUND

An enterprise may employ multiple computer applications. Suchapplications may provide, for example, document creation, documentmanagement, human resources management, time entry, scheduling, etc.Some specific examples include Documentum, FileNet, SAP, Oracle, and soforth. A typical method of searching for data files in the variousenterprise applications includes performing a search in each separateapplication using a search program directed specifically to therespective application.

SUMMARY

Certain embodiments of the present invention may be generally directedto systems and methods for searching for, and retrieving, data and otherinformation from various computer applications. The applications may be,for example, various applications found in an enterprise computersystem. The applications may have data files, or other data, ofdiffering formats. Certain embodiments provide a platform havingadapters for extracting the data. The extracted data may be aggregatedand transformed into a format usable by a search application, engine, orother searching application. The search application may be anInternet-based search engine, for example. The transformed data istransmitted to the search application and search results are returnedbased on one or more search criteria. In certain embodiments,information may be dynamically presented to the search application.Also, in certain embodiments, applications may be queued to determinewhether a user is permitted to see information (e.g., search results)relating to the applications.

In one embodiment a system is provided for searching for files in one ormore computer applications. The system includes one or more applicationadapters for interfacing with the one or more computer applications. Thesystem also includes at least one processor for causing the one or moreapplication adapters to extract data associated with data files from theone or more computer applications. The system further includes a datatransformation module for receiving and transforming data from the oneor more application adapters, the data being associated with the datafiles, the data being transformed to a format suitable for searching bya search application. The system further includes a search applicationcoupled to the data transformation module for receiving and searchingthe transformed data to identify one or more data files meeting one ormore search criteria.

In another embodiment an application searching platform is provided andincludes at least one processor, and at least one application adaptercoupled to the at least one processor and operable to interface with atleast one computer application to extract data therefrom. The platformalso includes a data transformer operable to convert extracted data froma first format unusable by a search application to a second formatuseable by the search application.

In another embodiment a method is provided for searching for data filesin a plurality of computer applications. One step is providing at leastone adapter for interfacing with at least one of the plurality ofcomputer applications. Another step is accessing, through the at leastone adapter, the at least one computer application. Another step isextracting data from the at least one computer application, theextracted data comprising data in a format unusable by a searchapplication. Another step is converting the unusable data to a formuseable by the search application. Another step is transmitting theuseable data to the search application for searching according to atleast one search parameter. Another step is receiving search resultsfrom the search application.

Certain embodiments may provide certain advantages, some of which areindicated below. It should be understood that any particular embodimentmay provide some, none, or all of the described advantages.

One advantage is the ability to access different enterprise applicationshaving files with different formats, extract the data files, and convertthem to a format useable by a search application.

Another advantage is reduced complexity and increased efficiency insearching for data across multiple computer applications, which mayexist in an enterprise.

Another advantage is the ability to use a commercially available searchengine to search data residing in multiple computer applications, whichmay comprise an enterprise computer network.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and forfurther features and advantages, reference is now made to the followingdescription, taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 illustrates a system for data file searching in accordance withan embodiment of the present invention;

FIG. 2 illustrates a method for data file searching in accordance withan embodiment of the present invention; and

FIG. 3 is a class diagram for object-oriented programming techniqueswhich may be employed in a searching system in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

Various embodiments may be generally directed to systems and methods forsearching for, and retrieving, data and other information from variouscomputer applications. The applications may be, for example, variousapplications found in an enterprise computer system. The applicationsmay have data files, or other data, of differing formats. Certainembodiments provide a platform having adapters for extracting the data.The extracted data may be aggregated and transformed into a formatusable by a search application, engine, or other searching application.The search application may be an Internet-based search engine, forexample. The transformed data is transmitted to the search applicationand search results are returned based on one or more search criteria.

In one embodiment, as illustrated in FIG. 1 for example, a system 10 isprovided for searching for documents in various enterprise applications.Although this example concerns document searching, certain aspects ofvarious embodiments may be used for searching for any type of filestored in electronic media, databases, software programs, computerapplications, etc. Also, the inventive aspects described herein are notlimited to enterprise applications. For instance, other sources of datamay be incorporated into various described embodiments. Such sources mayinclude, for example, any computer application, database, program, etc.Data files may include data in any format including, for example,static, dynamic HTML, XML, graphics, multimedia, and traditionaldocument files. Generally, the term computer application may be used torefer to the various sources of information being searched, and datafile may be used to refer to information in the various sources.

System 10 includes a platform 14, which may be connected through network38 to a plurality of enterprise applications 40, 42, and 44.Applications 40, 42, and 44 may be any computer program, database, etc.In this example, the applications are those which may be used by anenterprise in the normal course of its business. For example, theapplications may include, without limitation, applications for documentmanagement, document creation, media display, Email, calendaring andscheduling, spreadsheets, human resources management, time entry, and soforth. Specific examples may include, for instance, Documentum, FileNet,SAP, Oracle, etc.

Network 38 may be any suitable network or combination of networks.Information transmitted across network 38 may include any information,in any format, which is necessary or desirable in the operation ofsystem 10. The information may be transmitted in whole, or incombination, in any format including digital or analog, text or voice,and according to any known or future transport technologies, which mayinclude, for example, wireline or wireless technologies. Wirelesstechnologies may include, for example, licensed or license-exempttechnologies. Some specific technologies which may be used include,without limitation, Code Division Multiple Access (CDMA), Global Systemfor Mobile Communication (GSM), General Packet Radio Service (GPRS),WiFi (802.11x), WiMax (802.16x), Public Switched Telephone Network(PSTN), Digital Subscriber Line (DSL), Integrated Services DigitalNetwork (ISDN), cable modem, Ethernet, and/or EV-DO technologies. Thenetwork may also comprise Internet transport. These are examples onlyand one of ordinary skill will understand that other types ofcommunication techniques are within the scope of the present invention.Further, it will be understood that additional components may be used inthe communication of information between the various components ofsystem 10 and users of system 10. Such additional components mayinclude, without limitation, lines, trunks, antennas, switches, cables,transmitters, receivers, computers, routers, servers, fiber opticaltransmission equipment, repeaters, amplifiers, etc.

As described in further detail below, platform 14 includes variousprocessors, databases, modules, etc. These various components may beembodied in any suitable hardware and/or software devices, which areoperable to provide the various functionalities described in connectionwith the example embodiments.

Platform 14 includes adapter network 16. Adapter network 16 comprises aplurality of application adapters 32, 34, and 36. Preferably there is aone-to-one correspondence between the adapters and the enterpriseapplications. However, the invention is not so limited. Any particularadapter may be configured to be associated with one, none, or multipleenterprise applications. And any one enterprise application mayinterface with one, none, or multiple adapters. In the exampleillustrated in FIG. 1, adapter 32 is associated with application 40,adapter 34 is associated with application 42, and adapter 36 isassociated with application 44. It will be understood that otherconfigurations are possible and fall within the scope and spirit of thevarious example embodiments.

Preferably, each of the application adapters 32, 34, and 36 comprises athin layer of software executable by one or more processors withinplatform 14. Preferably, the adapters have no transactional capability;however, the invention is not limited to such configuration. System 10may provide multiple instances of any particular adapter. Duringoperation, the adapters connect interface with the respective enterpriseapplications to extract data therefrom. Preferably, the data isextracted in the form in which is resides at the respective application.One or more criteria may be preestablished for enabling an adapter todetermine which information to extract from a respective application. Inone example embodiment, the adapter layer 16 includes a data accesslayer (not expressly shown), which accesses data from variousapplications by using various API techniques (which may be particular tothe respective application), Java objects and XML parsers. For example,with respect to a Documentum application, the data access layer may useDocumentum Foundation Class (DFC) methods.

Platform 14 includes one or more listener modules 18. A listener modulemay receive calls from search application 12 (e.g., as part of asecurity credentials validation and lookup as described elsewhereherein). The same listener module, or a different listener module (notexpressly shown) may receive calls for dynamic lookups.

Listener module 18 is coupled to pre-processor 28, which in turn iscoupled to application agent 30. Pre-processor 28 is operable to invokethe various adapters through application agent 30. Pre-processor 28 mayuse various information as input to determine whether, when, and underwhich conditions and/or criteria to invoke adapters 32, 34, and 36. Asillustrated pre-processor 28 is also coupled to scheduler 20 andsecurity controller 22. Thus, pre-processor 28 may receive input fromlistener 18, scheduler 20, and/or security controller 22 to determinethe various parameters of operation of the adapters, and thus theoperation of system 10.

Among other things, scheduler 20 may provide one or more time criteriafor use in controlling the operation of the searching functions ofsystem 10. For example, scheduler 20 may accept from a user certain dateand/or time parameters, according to which the various enterpriseapplications will be searched. For instance, it may be desired thatvarious enterprise applications are periodically searched on certaindays or at certain times of day.

Among other things security controller 22 may provide certain parametersaccording to which users may or may not perform the various functionsand operations of system 10. In one example, security controller 22maintains certain information associated with a plurality of users.Certain users may be authorized to search only application 40, whilecertain other users are authorized to search all enterpriseapplications. Security controller 22 dictates which users will be ableto perform which searches based on this information. In othersituations, security controller 22 may govern which users are able toview search results. Search results may include the actual data files(e.g., documents) resulting from the search. Search results may alsoinclude information associated with the data files. Such information mayinclude, for example, date, author, and title information. In certainconfigurations, security controller 22 may permit a particular user toview indication information associated with data files in the searchresults, but may prohibit the same user from viewing the data filesthemselves. In other scenarios, security controller 22 may prohibit aparticular user from viewing any information associated with the searchresults including the data files or any information indicative of theexistence or content of the data files. Security controller may be usedto allow a user of group of users access to search results, whileprohibiting access to another user or other group of users. In anotherembodiment, the security controller 22 extracts information regardinguser credentials from a source. Optionally, security controller 22 mayreceive the information from another system component, which extractsthe credentials from the source. The source may be one or moredatabases, for example. According to another example, the source maycomprise one or more of the enterprise applications. Preferably, thecredentials indicate whether a user is allowed to perform certainsearching functions and view search results associated with one or moreof the enterprise applications. Security controller 22 compares thecredentials with data maintained by security controller 22 to determinewhether a particular user may perform search activities and/or viewsearch results.

Application agent 30 is coupled to pre-processor 28 and to the network16 of application adapters 32, 24, and 36. Agent 30 may, according tocertain configurations, function as an aggregator for data extractedfrom the various enterprise applications by the adapters. Agent 30 maycollect the data files (or other extracted information) and provide theextracted data to post-processor 26. Data may undergo a first conversionprior to be forwarded to post-processor 26. Post-processor 26 maygenerate files, which are suitable for searching by a searchapplication. The files may then be forwarded to a transformer 24 foradditional conversion to a format specifically adapted to be recognizedand processed by the particular search application 12. In one example,data files are converted to Base64 format prior to being forwarded topost-processor 26, and post-processor 26 converts the Base64 files togeneric XML files. Transformer 24 then converts the platform XML filesto search-appliance-specific XML files.

In the illustrated example, the search application 12 may be anInternet-based search engine such as the Google Search Application(GSA). In such a scenario, the transformer 24 would convert the platformXML files into GSA-specific XML files for processing and searching usingthe GSA. It should be noted that any suitable search application may beincorporated into various embodiment of the invention. It should also benoted that systems according to certain embodiments may employ more thanone search application, which may operate in conjunction with oneanother. The operation may be parallel or serial.

Preferably, during the conversion process, a record locator is includedin each data file. This may occur at any point in the process. Forexample, extracted data files may be provided with a record locator uponextraction by the adapter(s). Optionally, the application agent,post-processor, transformer, or other component (either shown or notexpressly shown) may provide the data files with record locators. Therecord locators assist in the assembly and display of the search resultsby, for example, display 46.

Display 46 may be any suitable display for display electronicinformation. Display 46 may comprise, for example, one or more computerscreens, personal data assistants, mobile communication devices, videothermals, printers, etc. In certain embodiments, an interface isprovided to gain access to, and control the operation of, display 46 andother components of system 10. For example, in reviewing search results,a user might wish to access both public and private information withinor otherwise associated with the search results based on the user'sauthorization status. Accordingly, in one example, a design pattern maybe defined around manipulations of suitable Extensible StylesheetLanguage Transformations (XSLT) to provide a user-friendly interface toenable this functionality. In this example, one advantage of such adesign pattern may include the emphasis on the context of use of eachelement in the library. Designers, when considering a new design, mayuse the context description to determine whether a particular pattern isappropriate. Simplicity of usage may increase effectiveness andproductivity.

Search application 12 is operable to search the data it receives fromplatform 14. Operation of the search application 12 is generally knownand the details of operation are, therefore, omitted. Search application12 returns search results to platform 14, which may then display theresults on display 46. Optionally, search application 12 may transmitthe search results directly to display 46, to another component such asa remote processor for further processing prior to display, or to one ormore databases for storage. The search results may be in any formincluding, without limitation, content, record information and fileidentification information. The results may also be returned from searchapplication 12 in any data format. In some instances the data returnedfrom search application 12 must undergo further conversion prior tobeing viewable on a display. Preferably, system 10 allows a user tomanipulate the search results according to any number of parametersincluding record ranges, date and time ranges, numerical andalphabetical orders, subject matter, the particular enterpriseapplication associated with the file, etc.

It should be noted that although there is only an instance of platform14 illustrated in FIG. 1, the invention is not so limited. Certainembodiments may incorporate multiple instances of platform 14 (or othercomponents), for example, on a single server or multiple servers.

In another example embodiment, illustrated in FIG. 2, a method 100 isprovided for searching for data files residing in a plurality ofcomputer applications. Again, as described above, the terms data filesand computer applications are not meant to be limiting. As with system10 illustrated in FIG. 1, the various inventive aspects of method 100may apply to searching any sources of electronic information for data inany format. Also, the various method steps may be performed by anysuitable component or combination of components, which is, or are,operable to perform the various functionality of the method 100.

At step 110, a searching system is initialized. This may involve any ofa variety of actions including start-up actions, data class setup, loginand other security activities, software updates, and debugging services.

At step 112, a connection is invoked between a searching system platformand at least one computer application. Preferably, a connection isestablished with a plurality of computer applications, which asdescribed herein may be any of a variety of computer applicationsincluding commercially available or proprietary enterprise applications.The connection may be established by any of the techniques, and usingany of the components, already described herein. For example, theconnection may be invoked by a pre-processor in a search systemplatform. The pre-processor may accept various parameters as input todetermine whether, and under what conditions, to connect the platform tothe computer application(s). It should be noted that the term “platform”is not meant to be limiting with respect to the configuration ofcomponents used to perform the functionality of the various steps ofmethod 100. Any suitable combination and arrangement of components maybe employed. In one example, the connection is established through theuse of an application agent, through a network of application adapters,through a communications network, and to a plurality of enterpriseapplications. In an example embodiment, the method 100 is accomplishedusing object-oriented programming techniques. In this scenario, theconnection step may involve unpacking one or more connection objects,logging in to begin a search session, and returning a search session asa Java object.

At step 114, data in the one or more computer applications isidentified. This step may involve preliminary searching (including, forexample, building a search query string) by one or more processors todetermine identifying information for data files to be searched anddetermining whether data in the computer applications is qualified forsearching. For example, the identification step may involve determiningrecord location information for all files of a particular format such as.ppt (PowerPoint) files. The indemnification step may also provide anumber of qualified files or records and may generate informationregarding the volume, location, etc. of data that will be extracted forsearching by a search application.

At step 116, data is extracted from the computers application(s). Thismay be accomplished, for example, by the techniques described above inconnection with system 10. For example, one or more application adaptersmay extract the data from the computer application(s). According to oneexample, file content data is obtained for a collection of name/valuepairs, each of the name/value pairs being associated with a singlecontent item. Certain conversion techniques, as described herein, may beperformed as part of the extraction step.

At step 118, the data is converted. This may involve any number ofcomponents, steps, and different conversion techniques, such as thosedescribed herein, for example. In once scenario, an application agentaggregates the extracted data and performs an initial conversion of atleast some of the data to a form useable by a post-processor. Thepost-processor may further convert the data to a different format, suchas an XML format, prior to transmitting the data to a transformer. Thetransformer may further convert the data to a format specific to theparticular search application(s) being used by the search system. Forexample, the transformer may convert the data to a GSA-specific formatin the event the search method involves the use of a Google SearchApplication. These are examples only, and it should be noted that anysuitable conversion techniques may be employed as long as the extracteddata is ultimately converted to a format usable by the searchapplication(s).

At step 120, the data is transmitted to a search application. The searchapplication may be any search component operable to search electronicdata. In one example, the search application is a remote, Internet-basedsearch engine, such as a Google Search Application. The information maybe transmitted to the search application via any communicationstechniques and across any communications network or component. Thesearch application preferably performs searching of the converted dataaccording to its normal methods of operation.

At step 122, search results are received. The search results may betransmitted from the search application to the search platform. Thesearch platform may then display the results on one or more displays.Optionally, the one or more displays may receive the search resultsdirectly. The search results may be in any suitable format. Accordingly,the results may be returned from the search application in a formsuitable for viewing by a user without further processing.Alternatively, one or more platform processors, or remote processors orother components, may receive the search results and convert the resultsinto a viewable format prior to the results being transmitted to thedisplay(s).

At step 124, a security process may be performed. In one examplescenario, a security query is initiated. This may be performed accordingto any of the various techniques described herein. If the security queryis positive, then the method proceeds to step 130. If the security queryis negative, then the method may proceed to step 126 for furthersecurity processing.

At step 126, an attempt is made to obtain the necessary information toauthorize the user to view the results. For example, the user may beprompted to provide one or more security inputs. The system may thenevaluate the security inputs to determine whether the security check ispositive or negative. If positive, the method proceeds to step 130. Ifstill negative, the method ends at step 128. It should be noted that thesecurity step(s) may be performed at different points during the method100. For example, the security checks may be performed prior to theconnections being established in step 112.

At step 130, the results may be displayed. The display step may beperformed at least partially under the control of one or more users. Forexample, a user may choose how he or she would like the search resultsto be displayed. For example, a user may first be presented with alisting of data files. The listing may include selectedidentifying/record locator information regarding the files returned assearch results. The user may then opt to view the actual content of oneor more files. Also, the user may elect to manipulate and/or organizethe results according to one or more parameters, which may bepredetermined or established by the user. The method ends at step 132.

In one specific example, as in the case where a particular enterpriseapplication known as Documentum is involved, the method 100 may beperformed according to the following example processes. Some examples ofthe various object classes relating to the steps are illustrated in FIG.3. In FIG. 3, a class diagram is provided showing Service and DataAccess Object (DAO) layers. DctmAdpaterService class is the Servicelayer and defines the set of available operations and their interfaces.Access from the platform (sometimes referred to as Extension Platform)or any other source to the Adapter may be made through this layer. TheDctmAdapterDAO class is the Data Access layer. The DAO uses DFC/APImethods, Java objects and an XML parser to access configuration filesfrom a Documentum repository.

Certain steps for this specific configuration include:

A. init

Initialize the class and the Logging and Debugging service for theAdapter.

B. connect

Connect to the Documentum server based on information passed in theConnectionObject parameter. The connection information is passed back tothe Adapter and is returned as a Java object. The function performs thefollowing steps:

-   -   Unpacks the ConnectionObject    -   Logs in and gets session    -   Returns session as Java Object

C. getRecordCount

Return the count of content records that are qualified for a particularcategory of information. The function performs the following steps:

-   -   Builds query string    -   Queries repository    -   Returns count and collection of object Ids as Java Object

D. getData

Return the content data of name/value pairs. Each collection holds onecontent item. The function performs the following steps:

-   -   Gets repository version    -   Extracts data from FIXML filestore if the Documentum version is        5.3 or higher    -   Extracts data using DFC and converts content to Base64 if the        Documentum version is between 5.0 and 5.2    -   Returns with error code if the Documentum version is below        5.0—the repository not supporter

E. getData

Return content records for a specified range. The content data is in acollection of name/value pairs. Each collection holds one content item.The function performs the following steps:

-   -   Gets repository version    -   Extracts data from FIXML filestore if the Documentum version is        5.3 or higher    -   Extracts data using DFC and converts content to Base64 if the        Documentum version is between 5.0 and 5.2    -   Exits program if the Documentum version is below 5.0

F. getAuthorization

Return “true” if the user is authorized to view the specified content,and “false” if not. The function performs the following steps:

-   -   Queries repository to ensure that user has access to the object    -   Returns “true” if user has access, and “false” if otherwise

G. getOneBoxContent

Return a collection of content record, based on a pre-configured DQLstatement. The specified search or DQL is passed in AppOneBoxContentobject along with the connection information retrieved from the connectcall. The function performs the following steps:

-   -   Queries repositories using DQL    -   Gets attributes asked in the DQL    -   Returns result in Java Collection Object

H. getContent

Return the specified content as a collection of name/value pairs. Thismethod is used with OneBox functionality and whenever Webtop web clientis not available to display the content. The function performs thefollowing steps:

-   -   Queries repository    -   Gets content and convert to Base64    -   Returns content in Java Object

I. disconnect

Disconnect the specified session from the Documentum repository. Thefunction performs the following step:

-   -   Disconnects from the repository

In another embodiment, the search application(s) are downloadable (e.g.,from a website) or otherwise installable on a computer platform. Thecomputer platform having the downloaded appliance may be the searchplatform described herein, or another computer platform. In one example,the computer platform on which the search application is installed is auser's desktop or laptop computer. In a specific example, the user mayinstall a Google Desktop search engine product and an interface may beestablished between the search platform (e.g., the platform described inconnection with system 10) for the performance of search activities.Other search applications, such as Side Bar (a plug-in product) may besimilarly incorporated.

In still another embodiment, a proxy agent from the security module maybe moved to the laptop or desktop computer of a user, or to such othercomputer platform that may host a portion of the searching system.

In yet another embodiment, the search application, results display,and/or other components may reside wholly, or partially, on a mobilecommunication device. The mobile communication device may comprise anysuitable device having electronic information processing capability,such as a mobile phone, mini computer, or personal data assistant.Preferably, the mobile communication device has a display for displayingsearch results.

Although an embodiment of the invention and its advantages are describedin detail, a person skilled in the art could make various alterations,additions, and omissions without departing from the spirit and scope ofthe present invention as defined by the appended claims.

1. A system for searching for files in one or more computerapplications, the system comprising: one or more application adaptersfor interfacing with the one or more computer applications; at least oneprocessor for causing the one or more application adapters to extractdata associated with data files from the one or more computerapplications; a data transformation module for receiving andtransforming data from the one or more application adapters, the databeing associated with the data files, the data being transformed to aformat suitable for searching by a search application; and a searchapplication coupled to the data transformation module for receiving andsearching the transformed data to identify one or more data filesmeeting one or more search criteria.
 2. The system of claim 1, whereinthe one or more application adapters comprises a plurality ofapplication adapters for interfacing with a plurality of computerapplications.
 3. The system of claim 2, wherein each of the plurality ofapplication adapters interfaces with one computer application.
 4. Thesystem of claim 2, wherein at least one of the plurality of applicationadapters interfaces with at least two computer applications.
 5. Thesystem of claim 1, further comprising a platform, the platformcomprising the at least one processor and the data transformationmodule.
 6. The system of claim 5, wherein the platform further comprisesat least one application adapter.
 7. The system of claim 6, wherein theplatform is coupled to one or more computer applications through anetwork.
 8. The system of claim 1, wherein the one or more computerapplications comprise enterprise applications disposed on one or moreenterprise servers, and wherein the search application comprises asearch engine comprising one or more servers remote from the one or moreenterprise servers.
 9. The system of claim 1, further comprising asecurity module for enabling a user to view results from the searchapplication according to one or more security criteria.
 10. The systemof claim 9, wherein if the one or more security criteria are not met,the user may view information associated with the search results, butmay not view content of the search results.
 11. The system of claim 9,wherein if the one or more security criteria are not met, the user maynot view any information associated with the search results.
 12. Thesystem of claim 9, wherein the search results comprise document files,and wherein the user is only able to view the document files if the oneor more security criteria are met.
 13. The system of claim 9, whereinthe search results comprise document files and data and indication dataassociated with the document files, and wherein the user is unable toview either the document files or the indication data unless the one ormore security criteria are met.
 14. The system of claim 9, wherein thesecurity module checks at least one of the one or more computerapplications for a data packet associated with a user to determinewhether the user is permitted to view information associated with thesearch results.
 15. The system of claim 14, wherein the data packetcomprises a software cookie.
 16. The system of claim 14, wherein if adata packet exists associating the user with the respective computerapplication, then the user is permitted to view information associatedwith the search results.
 17. The system of claim 14, wherein if a datapacket does not exist associating the user with the respective computerapplication, then the system queries the user for input regarding one ormore security criteria.
 18. The system of claim 9, wherein the securitymodule compares data received from the one or more computer applicationsand compares the received data with stored data, the comparison being atleast one factor used in determining whether a user is permitted to viewinformation associated with the search results.
 19. The system of claim1, further comprising a scheduling module operable to control the timingof a search performed by the system.
 20. The system of claim 1, furthercomprising an application agent operable to aggregate data extractedfrom the one or more computer applications.
 21. The system of claim 20,wherein the application agent is further operable to convert theextracted data to a form usable be a processor.
 22. The system of claim20, further comprising a conversion processor coupled to the applicationagent and operable to convert data to a format useable by a searchapplication.
 23. The system of claim 22, wherein the conversionprocessor is operable to convert data to XML format.
 24. An applicationsearching platform, comprising: at least one processor; at least oneapplication adapter coupled to the at least one processor and operableto interface with at least one computer application to extract datatherefrom; a data transformer operable to convert extracted data from afirst format unusable by a search application to a second format useableby the search application.
 25. An application searching platform,comprising: at least one processor; and at least one security modulecoupled to the at least one processor and operable to execute at leastone security information request for security information from at leastone computer application, the security information used to determinewhether a user is permitted to view search information associated withthe at least one computer application.
 26. A method of searching fordata files in a plurality of computer applications, the methodcomprising: providing at least one adapter for interfacing with at leastone of the plurality of computer applications; accessing, through the atleast one adapter, the at least one computer application; extractingdata from the at least one computer application, the extracted datacomprising data in a format unusable by a search application; convertingthe unusable data to a form useable by the search application;transmitting the useable data to the search application for searchingaccording to at least one search parameter; and receiving search resultsfrom the search application.
 27. The method of claim 26, wherein the atleast one computer application comprises a plurality of computerapplications having first and second data associated therewith, thefirst and second data having different formats.
 28. The method of claim26, further comprising extracted data and converting the extracted datato a single format.
 29. The method of claim 26, wherein the searchapplication is hosted remotely from the at least one computerapplication.
 30. The method of claim 26, wherein the search applicationis hosted remotely from a platform comprising the at least one adapter.31. The method of claim 26, further comprising retrieving at least onepiece of security data associated with a user and comparing the at leastone piece of security data with stored data to determine whether a useris permitted to perform at least one step in the method.